package demo09.MoreTemplateMethod.Abstract;

public abstract class CaffeineBeverage {//咖啡因的饮料

	
	/**
	 * 模板方法定义了一个算法的步骤，并允许子类为一个或多个步骤提供实现。
	 * 
	 * 好莱坞原则：将决策放在高层，以便决定何时调用低层模块。
	 * */
public 	final void prepareRecipe() {//准备制作
		boilWater();
		brew();
		pourInCup();
		addCondiments();
	}
 //抽象出来
public 	abstract void brew();
  
public	abstract void addCondiments();
 
	//相同的
public	void boilWater() {
		System.out.println("把水煮到沸腾");
	}
  
public 	void pourInCup() {
		System.out.println("倒入杯子");
	}
}
